'''
Created on 30/08/2013

@author: daniel
'''
import nodo
import unittest
import listaEnlazada

class NodoGeneral(object):
    '''
    Nodo usado en el arbol general, yo lo diseno 
    con asociacion a la clase Nodo
    '''
    def __init__(self,elem,link=listaEnlazada.ListaEnlazada()):
        self.nodo=nodo.Nodo(elem,link)
            
    def getDato(self):
        return self.nodo.getObjeto()
    
    def setDato(self,elem):
        self.nodo.setObjeto(elem)
    
    def getHijos(self):
        return self.nodo.getLink()  
    
    def setHijos(self,hijos):
        self.nodo.setLink(hijos)


class Test(unittest.TestCase):

    def testInit(self):
        self.assertIsInstance(NodoGeneral(None), NodoGeneral, "testea creaciona de nodo")

    def testGetDato(self):
        first=NodoGeneral(23,23)
        self.assertEquals(first.getDato(), 23,"Verifica que entregue el objeto")

    def testSetDato(self):
        first=NodoGeneral(None)
        self.assertIsNone(first.nodo.objeto, "Verifica que el objeto no esta")
        first.setDato(23)
        self.assertIsNotNone(first.nodo.objeto,"Verifica que el objeto si esta")

    def testSetHijos(self):
        first=NodoGeneral(None)
        self.assertTrue(first.nodo.link.esVacia(), "Verifica que el objeto no esta")
        first.setHijos(23)
        self.assertIsNotNone(first.nodo.link,"Verifica que el objeto si esta")

    def testGetHijos(self):
        first=NodoGeneral(None,23)
        self.assertEquals(first.getHijos(),23,"Verifica que entregue el objeto")
        
if __name__ == "__main__":
    #import sys;sys.argv = ['', 'Test.testName']
    unittest.main()